/*
 * test_comment_preservation.c
 *
 * 测试INI解析器的注释保存功能
 *
 * Created on: 2025/08/26
 *      Author: C Developer
 */

#include "c_ini.h"
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    printf("测试INI解析器的注释保存功能\n");
    printf("============================\n\n");
    
    // 创建INI解析器实例
    ini_parser_t *parser = ini_create_parser();
    if (parser == NULL) {
        printf("创建解析器失败\n");
        return 1;
    }
    
    // 读取测试文件
    printf("1. 从文件读取INI配置: test_common.ini\n");
    int result = ini_load_file(parser, "test_common.ini");
    if (result != INI_OK) {
        printf("读取文件失败，错误代码: %d\n", result);
        ini_destroy_parser(parser);
        return 1;
    }
    
    // 显示原始的server.timeout值
    double original_timeout = ini_get_double(parser, "server", "timeout", 0.0);
    printf("   原始的server.timeout值: %.2f\n", original_timeout);
    
    // 修改server.timeout值为100
    printf("2. 修改server.timeout值为100\n");
    result = ini_set_double(parser, "server", "timeout", 100.0);
    if (result != INI_OK) {
        printf("修改配置失败，错误代码: %d\n", result);
        ini_destroy_parser(parser);
        return 1;
    }
    
    // 显示修改后的server.timeout值
    double modified_timeout = ini_get_double(parser, "server", "timeout", 0.0);
    printf("   修改后的server.timeout值: %.2f\n", modified_timeout);
    
    // 保存到新文件
    printf("3. 保存配置到新文件: test_common_2.ini\n");
    result = ini_save_file(parser, "test_common_2.ini");
    if (result != INI_OK) {
        printf("保存文件失败，错误代码: %d\n", result);
        ini_destroy_parser(parser);
        return 1;
    }
    
    // 释放资源
    ini_destroy_parser(parser);
    
    printf("\n测试完成！请检查 test_common_2.ini 文件，确认注释是否被保留。\n");
    
    return 0;
}